package Day06;
/*
定义方法练习：
    定义无返回值无参数方法，如打印3行，每行3个*号的矩形
	定义无返回值有参数方法，如打印指定M行，每行N个*号的矩形
	定义有返回值无参数方法，如键盘录入得到一个整数
	定义有返回值有参数方法，如求三个数的平均值
方法定义的一般规律：
  1.什么时候定义方法的形参（方法的变量）
      a.当方法的功能中含有变化的量，我们会把这些变化量作为方法的形参定义
      例如：
        打印M行N列的矩阵：M,N的值不确定，因此把M,N作为两个变量定义在方法上
        求三个数中的最大值，三个数不确定，都是变化的量，因此把这三个数都作为方法的形参
      b.当方法中不含有变化量或者说都是固定的值，因此不需要定义方法的形参
      例如：
         打印3行3列的矩阵，由于行和列都是固定的，我们不需要定义方法形参，也就不需要方法调用的时候传值
  2.什么时候定义方法的返回值类型？
      a.当方法中的逻辑涉及到运算（求平均值，求面积值），而且我们需要这个运算结果，我们一般要把返回值类型定义成运算结果的类型
      b.当方法中没有逻辑运算（例如方法负责打印某些语句）或者我们能不需要方法中返回任何结果，此时就把方法的返回值类型定义成void
 */
import java.util.Scanner;
public class MethoDemo04 {
    public static void main(String[]args){
        //定义无返回值无参数方法，如打印3行，每行3个*号的矩形
       // print01();

       // print02(4,5);
        //print02(3,6);

        //int j=input();
       // System.out.println(j);

        double avg=getAvg(3,4,7);
        System.out.println(avg);
    }
    //4.定义有返回值有参数方法，如求三个数的平均值
    public static double getAvg(int i,int j,int k){
        double avg=(i+j+k)/3.0;
        return avg;
    }

    //3.定义有返回值无参数方法，如键盘录入得到一个整数
    public static int input(){
        Scanner scan=new Scanner(System.in);
        int i=scan.nextInt();
        System.out.println(i);
        return i;
    }

   // 2.定义无返回值有参数方法，如打印指定M行，每行N个*号的矩形
    public static void print02(int m,int n){
            for (int i=0;i<m;i++){
                for (int j=0;j<n;j++){
                    System.out.print("*");
                }
                System.out.println();
            }
    }

    //1.定义无返回值无参数方法，如打印3行，每行3个*号的矩形
    public static void print01(){
        for (int i=0;i<3;i++){
            for (int j=0;j<3;j++){
                System.out.print("*");
            }
            System.out.println();
        }
    }
}
